import java.io.File;
import java.io.FileNotFoundException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-05-30
 * Time: 22:39
 */
public class Test {





    //传递的数组下标异常
    public static int getElement(int[] array, int index){
        if(null == array){
            throw new NullPointerException("传递的数组为null");
        } if(index < 0 || index >= array.length){
            throw new ArrayIndexOutOfBoundsException("传递的数组下标越界");
        }
        System.out.println("还会打印？");
        return array[index];
    }
    public static void main1(String[] args) {
        int[] array = {1,2,3};
        getElement(array, 3);
    }




    public static void main2(String[] args)throws ArrayIndexOutOfBoundsException {
        int[] array = new int[2];

        //捕捉异常
        try {
            //放可能发生的异常
            System.out.println(array[3]);
            System.out.println("这里不会再执行了");

        }catch (ArrayIndexOutOfBoundsException e) {
            //捕捉异常
            System.out.println("处理了ArrayIndexOutOfBoundsException异常");
            //捕捉，打印异常
            e.printStackTrace();

        }
    }

}
class Exception {
    File file;

    /*
    FileNotFoundException : 编译时异常，表明文件不存在
    此处不处理，也没有能力处理，应该将错误信息报告给调用者，让调用者检查文件名字是否给错误了
    */
    public static void OpenConfig(String filename) throws FileNotFoundException {

        if (filename.equals("config.ini")) {
            throw new FileNotFoundException("配置文件名字不对");
        }
    }

    //捕获
    public static void main(String[] args) {
        try {
            //将可能出现异常的代码放在这里
            OpenConfig("test");
        } catch (FileNotFoundException e) {
            // 如果try中的代码抛出异常了，此处catch捕获时异常类型与try中抛出的异常类型一致时，或者是try中抛出异常的基就会时，就会被捕获到
            e.printStackTrace();
        }finally {
            // 此处代码一定会被执行到,一般用来关闭文件，释放资源
        }

    }
}
